package com.dd.cloud.user.mapper.doctor;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.cloud.user.entity.doctor.DoctorDetail;
import com.dd.cloud.user.res.doctor.DoctorConsultDetailRes;
import com.dd.cloud.user.req.doctor.DoctorInternetApplyReq;
import com.dd.cloud.user.req.doctor.InternetDoctorReq;
import com.dd.cloud.user.res.doctor.DoctorDetailRes;
import com.dd.cloud.user.res.doctor.DoctorUserSelectRes;
import com.dd.cloud.user.res.doctor.InternetDoctorApplyRes;
import com.dd.cloud.user.res.doctor.InternetDoctorRes;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 医生详情表 Mapper 接口
 * </p>
 *
 * @author czg
 * @since 2022-04-27
 */
public interface DoctorDetailMapper extends BaseMapper<DoctorDetail> {
    /**
     * 查询医生详情
     *
     * @param docId
     * @return
     */
    DoctorDetailRes queryDoctorDetail(@Param("docId") Integer docId);

    /**
     * 查询医生id以及名称 下拉列表专用
     *
     * @param keyword
     * @return
     */
    List<DoctorUserSelectRes> queryDoctorUserSelect(@Param("keyword") String keyword);

    /**
     * 查询医生咨询问诊的详情
     */
    DoctorConsultDetailRes consultDoctorDetail(@Param("doctorId") Integer doctorId);

    /**
     * 查询互联网备案医生
     * @param req
     * @param page
     * @return  IPage<InternetDoctorRes>
     */
    IPage<InternetDoctorRes> queryDoctorPage(@Param("page") IPage<InternetDoctorRes> page,
                                             @Param("req") InternetDoctorReq req);

    /**
     * 查询还联网待审核列表
     * @param page
     * @param req
     * @return  IPage<InternetDoctorRes>
     */
    IPage<InternetDoctorApplyRes> queryInternetDoctorPage(@Param("page") IPage<InternetDoctorApplyRes> page,
                                                          @Param("req") DoctorInternetApplyReq req);

    /**
     * @description 查询需要上传到监管平台的数据
     * @param :
     * @return List<DoctorDetail>
     * @author czg
     * @date 2024/3/4 14:31
    */
    List<DoctorDetail> getSuperviseDoctorList();
}
